From 3b437b016cb9dd8a3c798d210967b1fd0a5a2db8 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Sun, 29 Mar 2009 21:25:13 +0000 Subject: [PATCH] =?utf8?q?Bug=20577224=20=E2=80=93=20crash=20when=20settin?= =?utf8?q?g=20new=20icon=20after=20setting=20icon=20in?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 2009-03-29 Christian Persch Bug 577224 – crash when setting new icon after setting icon in gtkstatusicon * gtk/gtkstatusicon.c: (gtk_status_icon_reset_image_data), (gtk_status_icon_set_from_gicon): Retain a reference when setting from a GIcon, and use g_object_unref on GIcon, not g_free. svn path=/trunk/; revision=22594 --- ChangeLog | 9 +++++++++ gtk/gtkstatusicon.c | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index adfb0e1d0a..898a5696f8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-03-29 Christian Persch + + Bug 577224 – crash when setting new icon after setting icon in + gtkstatusicon + + * gtk/gtkstatusicon.c: (gtk_status_icon_reset_image_data), + (gtk_status_icon_set_from_gicon): Retain a reference when setting + from a GIcon, and use g_object_unref on GIcon, not g_free. + 2009-03-27 Behdad Esfahbod Bug 437533 – Implement draw_shape PangoRenderer method diff --git a/gtk/gtkstatusicon.c b/gtk/gtkstatusicon.c index 83bdb2cc5c..f2ed5012a1 100644 --- a/gtk/gtkstatusicon.c +++ b/gtk/gtkstatusicon.c @@ -1780,7 +1780,8 @@ gtk_status_icon_reset_image_data (GtkStatusIcon *status_icon) break; case GTK_IMAGE_GICON: - g_free (priv->image_data.gicon); + if (priv->image_data.gicon) + g_object_unref (priv->image_data.gicon); priv->image_data.gicon = NULL; g_object_notify (G_OBJECT (status_icon), "gicon"); @@ -1949,6 +1950,9 @@ gtk_status_icon_set_from_gicon (GtkStatusIcon *status_icon, g_return_if_fail (GTK_IS_STATUS_ICON (status_icon)); g_return_if_fail (icon != NULL); + if (icon) + g_object_ref (icon); + gtk_status_icon_set_image (status_icon, GTK_IMAGE_GICON, (gpointer) icon); } -- 2.30.2